package com.ruoyi.appointment.service;

import java.util.List;
import com.ruoyi.appointment.domain.BusAppointment;
import com.ruoyi.appointment.domain.BusStatement;
import com.ruoyi.appointment.domain.vo.BusAppointmentVo;

/**
 * 预约
Service接口
 * 
 * @author ruoyi
 * @date 2023-09-14
 */
public interface IBusAppointmentService 
{
    /**
     * 查询预约

     * 
     * @param id 预约
主键
     * @return 预约

     */
    public BusAppointment selectBusAppointmentById(Long id);

    /**
     * 查询预约
列表
     * 
     * @param busAppointment 预约

     * @return 预约
集合
     */
    public List<BusAppointment> selectBusAppointmentList(BusAppointment busAppointment);

    /**
     * 新增预约

     * 
     * @param busAppointment 预约

     * @return 结果
     */
    public int insertBusAppointment(BusAppointmentVo busAppointment);

    /**
     * 修改预约

     * 
     * @param busAppointment 预约

     * @return 结果
     */
    public int updateBusAppointment(BusAppointmentVo busAppointment);

    /**
     * 批量删除预约

     * 
     * @param ids 需要删除的预约
主键集合
     * @return 结果
     */
    public int deleteBusAppointmentByIds(Long[] ids);

    /**
     * 删除预约
信息
     * 
     * @param id 预约
主键
     * @return 结果
     */
    public int deleteBusAppointmentById(Long id);

    /**
     *已到店
     * @param id
     * @return 结果
     */
    int updateArrival(Long id);

    /**
     * 取消预约
     * @param ids
     * @return 结果
     */
    int updateCancel(Long ids);

    /**
     * 创建结算单
     * @param id
     * @return 返回结算单对象
     */
    BusStatement doCreateStatement(Long id);

    /**
     * 更新支付成功状态
     * @param appointmentId
     * @return
     */
    int updatePaySuccess(Long appointmentId);
}
